import { request } from "../../request/index.js"
/* 一、用户上滑页面，滚动条触底，加载加一页数据
  1、找到滚动条触底事件，2、判断有没有下一页。
  2、获取总页面，2、获取当前页面，判断当前页面是否等于或大于总页码。
  3、总页数 = Math.ceil（总条数 / 页容量 pagesize）Math.ceil数值的方法，向上取整。
  4、获取当前的页码 pagenum
  5、总页数: = Math.ceil（23 / 10）向上取整 等于 3

  6、假如没有下一页数据了，就显示已经到底了
  7、如果还有，
    1、当前的页码需要 ++
    2、从新发送请求
    3、数据请求回来时。要对data中之前的的数组进行拼接。不是替换。不能直接用setData
  二、下拉刷新页面
    1、触发下拉刷新事件 需要在页面的json中配置 enablePullDownRefresh 的值为true。
      找到下拉触发刷新事件
    2、重置、数据、数组
    3、重置页码，设置为1
    4、从新发出请求
    5、数据回来以后，需要手动关闭等待效果
*/
// pages/goods_list/index.js
Page({
  data: {
    tabs:[
      { id:0,value:"综合",isActive:true},
      { id:1,value:"销量",isActive:false},
      { id:2,value:"价格",isActive:false}
    ],
    goodsList:[]
  },

  // 接口需要的参数 自定义名字如下：
  QueryParams:{
    query:"",
    cid:"",
    pagenum:1,
    pagesize:10
  },
  // 总页数
  totalPages:1,
  onLoad: function (options) {
    this.QueryParams.cid = options.cid
    this.getGoodsList();
  },

  // 获取商品列表数据
  getGoodsList(){
    request({url:"/goods/search",data:this.QueryParams})
    .then(result => {
      const total = result.total
      // 计算总页数：
      this.totalPages = Math.ceil(total / this.QueryParams.pagesize)
      this.setData({
        // 拼接数组
        goodsList:[...this.data.goodsList,...result.goods]
      })
      // console.log(this.totalPages );
    })

    // 关闭下拉刷新窗口
    wx.stopPullDownRefresh()
  },

  //标题的点击事件，从子组件传递过来的
  handletabsItemChange(e){
    //1、获取被点击的标题索引
    const index = e.detail.index
    //2、修改原数组
    let {tabs} = this.data
    tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false);
    //3、赋值到data中
    this.setData({tabs})
  },
  
  // 页面上滑滚动条触底事件
  onReachBottom(){
    if(this.QueryParams.pagenum >= this.totalPages){
      wx.showToast({
        title: '全部加载完成',
      });
    }else{
      console.log("下一页数据");
      this.QueryParams.pagenum++;
      this.getGoodsList();
    }
  },

  // 下拉刷新事件
  onPullDownRefresh(){
    this.setData({
      goodsList:[],
    }),
    this.QueryParams.pagenum = 1,
    this.getGoodsList()
  }
})